package composite;

import composite.abstrac.AbstractFloder;
import composite.abstrac.impl.Floder;
import composite.abstrac.impl.MFile;

import java.io.File;

public class Main {

    public static void main(String[] args) {

        String path = "实验五";//相对路径
        AbstractFloder root = new Floder(path);
        travel(path, root);
        root.onDraw();
//        AbstractFloder root=new Floder("");
//        AbstractFloder etc=new Floder("etc");
//        AbstractFloder var=new Floder("var");
//        AbstractFloder bin=new Floder("bin");
//        root.addChild(etc);
//        root.addChild(var);
//        root.addChild(bin);
//        AbstractFloder local = new Floder("local");
//        local.addChild(new Floder("bin2"));
//        var.addChild(local);
//        Floder frp = new Floder("frp");
//        local.addChild(frp);
//        frp.addChild(new MFile("frpc.ini"));
//        frp.addChild(new MFile("frpc.service"));
//        etc.addChild(new MFile("javascript百炼成仙.pdf"));
//        bin.addChild(new MFile("curl.sh"));
//        USBFloader usbRoot = new USBFloader("USB-DEVICE-HUAWEI(U盘256GB)");
//        Floder music = new Floder("音乐");
//        music.addChild(new MFile("只因你太美.mp3"));
//        usbRoot.addChild(music);
//        usbRoot.addChild(new Floder("电影"));
//        usbRoot.addChild(new MFile("设计模式.pdf"));
//        root.addChild(usbRoot);
//        root.onDraw();
    }

    public static void travel(String fileName, AbstractFloder root) {
        File MFile = new File(fileName);        //获取其file对象
        File[] fs = MFile.listFiles();
        if (fs == null) return;//遍历path下的文件和目录，放在File数组中
        for (File f : fs) {
            if (!f.isDirectory()) {
                root.addChild(new MFile(f.getName()));
            } else {
                Floder child = new Floder(f.getName());
                root.addChild(child);
                travel(f.getAbsolutePath(), child);
            }

        }
    }
}
